package com.tree.backend.entity.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 党建与生产关联表，记录党建活动对生产经营的具体贡献和影响
 * </p>
 *
 * @author tree
 * @since 2025-10-15
 */
@Getter
@Setter
@ToString
@TableName("party_production_link")
public class PartyProductionLink implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 关联记录唯一标识
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 关联记录编码
     */
    private String linkCode;

    /**
     * 关联活动编码
     */
    private String activityCode;

    /**
     * 关联党员编码
     */
    private String memberCode;

    /**
     * 所属党组织编码
     */
    private String orgCode;

    /**
     * 关联类型：1-技术攻关，2-质量改进，3-成本节约，4-效率提升，5-安全改善
     */
    private Byte linkType;

    /**
     * 生产影响度
     */
    private BigDecimal productionImpact;

    /**
     * 创新贡献值
     */
    private Integer innovationContribution;

    /**
     * 质量提升率
     */
    private BigDecimal qualityImprovement;

    /**
     * 成本节约金额（万元）
     */
    private BigDecimal costSaving;

    /**
     * 效率提升率
     */
    private BigDecimal efficiencyImprovement;

    /**
     * 安全改善项数
     */
    private Byte safetyImprovement;

    /**
     * 项目持续时间（天）
     */
    private Integer projectDuration;

    /**
     * 项目规模
     */
    private String projectScale;

    /**
     * 成果描述
     */
    private String achievementDescription;

    /**
     * 验证状态：1-待验证，2-已验证，3-已确认
     */
    private Byte verificationStatus;

    /**
     * 验证人
     */
    private String verificationPerson;

    /**
     * 验证时间
     */
    private LocalDateTime verificationTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;
}
